Was ist ‘offensive’ Language, die der Classifier (Coarse-grained Binary Classification) erkennt?

The OFFENSE category covered abusive language, insults, as well as merely profane statements.

Vom Algorithmus als OFFENSE eingestufte Kommentare charakterisiere ich im Artikel als ‘toxisch’.

Einlesen der aufbereiteten Daten und zusammenführen:

1 Datenkomplettheit

Metadaten und Scores:

## # A tibble: 0 x 3
## # … with 3 variables: content_details_video_id <chr>, na_score <lgl>, n <int>

Wie viele Sendungen analysiere ich?

## # A tibble: 1 x 1
##       n
##   <int>
## 1   241

Wie viele Kommentare analysiert?

## [1] 64793

Wie viele Kommentare wären da?

## [1] 72010

Anteil, den ich analysiere:

## [1] 0.8997778
## # A tibble: 1 x 1
##       n
##   <int>
## 1 64793

Wie viele Untertitel?

## # A tibble: 1 x 1
##       n
##   <int>
## 1   185

2 Metadaten

2.1 Publikationsfrequenz von Weltwoche Daily

Lange nicht allzu ‘daily’ — Anzahl Videos pro Kalenderwoche:

  • noch nicht besonders ‘daily’ am Anfang

2.1.1 Likes & Dislikes

## # A tibble: 1 x 1
##   mean_like_ratio
##             <dbl>
## 1           0.961

2.2 Popularität von Weltwoche Daily

Anzahl Views:

Summe der Videoaufrufe in Millionen:

## # A tibble: 1 x 1
##   sum_view_count
##            <dbl>
## 1           4.08

Durschnittliche Views:

## # A tibble: 1 x 1
##   mean_view_count
##             <dbl>
## 1          16914.
sum_view_count dezil
7226 10
9448 20
11386 30
12884 40
14502 50
17364 60
22476 70
24446 80
26820 90
108890 100

3 Kommentare

3.1 Kommentare generell

YouTube-Kommentare pro Episode

Figure 3.1: YouTube-Kommentare pro Episode

  • gemäss Metadaten zu den Videos so viele, API lässt aber nicht alle einfach so herunterladen

    • analysiert werden etwas weniger, ohne Replies of Replies
Anzahl Ansichten von Weltwoche Daily-Episoden auf YouTube

Figure 3.2: Anzahl Ansichten von Weltwoche Daily-Episoden auf YouTube

  • wilde Fluktuationen mit Rolling Average glätten

3.1.1 Immer etwa dieselben Kommentierenden?

Welchen Anteil aller Kommentare haben welche Kommentierenden geschrieben?

## # A tibble: 6,727 x 3
##    snippet_author_channel_id_value     n percent
##    <chr>                           <int>   <dbl>
##  1 UC7G4mrTO5arRHt-W_1JyCFg          737   1.14 
##  2 UCFqdEJG4tymiTnyXfT0QG2Q          672   1.04 
##  3 UCleF4tBHWCVZh5Mt0oaeJvg          552   0.852
##  4 UCECuo4fP6osGN_72yyY9SaQ          500   0.772
##  5 UCIbZf9mVg0hBwR4URVjvMxA          491   0.758
##  6 UCRlhF4KVSWaiS6Yt6tUcrLA          476   0.735
##  7 UCrBroGe9YLWdE_r8SOQOnXQ          421   0.650
##  8 UCtjpDIqET5KkctdWLBwMG-g          415   0.641
##  9 UCy7nF8GYqYUzwg9HpjxPDoQ          403   0.622
## 10 UCF29gtZQ8i7nC8atDLWVrnw          396   0.611
## # … with 6,717 more rows
  • 6727 verschiedene Kommentierende in den Daten verzeichnet

Wer schreibt wie viele Kommentare?

  • viele schreiben nur einen Kommentar

  • 80 Prozent der Kommentierenden meldeten sich acht Mal, 90 Prozent 19 Mal oder weniger zu Wort, die letzen 10 Prozent zwischen 19 und 737 Mal.

Wie viele Kommentierende gab es denn?

## # A tibble: 6,727 x 2
##    snippet_author_channel_id_value     n
##    <chr>                           <int>
##  1 UC__d9__cUwYzj9fYEIqPHQw            1
##  2 UC__gJT2mgwA3hEKztRBx3Lg            1
##  3 UC__lfAoXEw0OZ8IU50ZwGMw            1
##  4 UC__YQ_QDStbMVV8hF9GoJIw            1
##  5 UC__Z6bpv6xOzhtA_6N_px2w            1
##  6 UC_-kUERleGtHp14c0aTrzdA            1
##  7 UC_-LSPHVVo8KipgvtZP40sQ            1
##  8 UC_0cKh0e62cGKSJfu1_fgZg            1
##  9 UC_0gPpFoYlj-FZ1q0AV9zwQ            1
## 10 UC_0m8qj4qoaQhuRCd4sHrlQ            1
## # … with 6,717 more rows

3.2 Klassifizierung gemäss Algorithmus

3.2.1 Modellgüte des Classifiers überprüfen

3.2.1.1 Originaldatenset

Hier überprüfe ich die Modellgüte des verwendeten Classifiers am Originaldatenset, da auf Hugging Face keine entsprechenden Details publiziert wurden.

##    echter_wert vorhergesagter_wert    n          metrik   anteil
## 1:     OFFENSE             OFFENSE  783  True Positives 22.17502
## 2:     OFFENSE               OTHER  419 False Negatives 11.86633
## 3:       OTHER             OFFENSE  355  False Positive 10.05381
## 4:       OTHER               OTHER 1974  True Negatives 55.90484
  • Sensitivity/Recall/Hit Rate/True Positive Rate: 65.1414309 % der toxischen Kommentare werden korrekt als solche eingestuft
  • Specificity/Selectivity/True Negative Rate: 84.7574066 % der nicht-toxischen Kommentare werden korrekt als nicht-toxisch eingestuft
  • Precision: 68.8049209 % aller als toxisch klassifizierten Kommentare wurden korrekt als solche klassifiziert (??)

3.2.1.2 YouTube-Kommentare

Sample von 250 Kommentare mit 125 pro mutmasslicher Klassifizierung, die manuell zu annotieren sind:

Confusion Matrix:

  • Precision:
    • True Positives / (True Positives + False Positives)
  • Relativ viele False Positives (Kommentare, die den Wert OTHER hätten, aber als OFFENSE eingestuft wurden) (knapp ein Viertel)
  • Sensitivity/Recall/Hit Rate/True Positive Rate: 82.5 % der toxischen Kommentare (Label: OFFENSE) werden richtigerweise als toxisch erkennt. Bzw. wie komplett werden die toxischen Kommentare erkennt.
    • True Positives / (True Positives + False Negatives)
  • Specificity/Selectivity/True Negative Rate: 64.9122807 % der nicht-toxischen Kommentare (Label: OTHER) werden richtigerweise als nicht-toxisch erkennt
    • True Negatives / (True Negatives + False Positives)
  • Precision: 52.3809524 % der als toxisch klassifizierten Kommentare sind tatsächlich toxisch. Bzw. wie valide sind die Resultate.
    • True Positives / (True Positives + False Positives)

Sowohl Precision und Recall sollten hoch sein.

  • Konfidenzintervall errichten: Nach oben um 17.5% mehr und gegen unten ?

Werden die Werte für Precision besser, wenn ich den Schwellenwert für eine Klassifikation anpasse?

Ausprobieren:

Leider geht das nicht: Der ursprüngliche Out-of-Sample Precision Test wird so nicht erreicht.

3.2.2 Korrekturfaktor berechnen

Da der Algorithmus zu viele Kommentare fälschlicherweise als toxisch erkennt, muss diese Zahl anhand den Confusion Matrix-Kennzahlen im Out-of-Sample angepasst werden.

Im manuell annotierten Datenset hat es folgende Verteilung:

## # A tibble: 2 x 3
##   echter_wert     n anteil
##   <chr>       <int>  <dbl>
## 1 OFFENSE        80  0.317
## 2 OTHER         172  0.683

Der Algorithmus erkennt folgende Werte:

## # A tibble: 2 x 3
##   vorhergesagter_wert     n anteil
##   <chr>               <int>  <dbl>
## 1 OFFENSE               126  0.502
## 2 OTHER                 125  0.498

So sieht die Confusion Matrix aus:

## # A tibble: 4 x 5
##   echter_wert vorhergesagter_wert     n metrik          anteil
##   <chr>       <chr>               <int> <chr>            <dbl>
## 1 OFFENSE     OFFENSE                66 True Positives   26.3 
## 2 OFFENSE     OTHER                  14 False Negatives   5.58
## 3 OTHER       OFFENSE                60 False Positive   23.9 
## 4 OTHER       OTHER                 111 True Negatives   44.2
## # A tibble: 4 x 1
##   list                            
##   <chr>                           
## 1 True Positives: 26.29 % bzw. 66 
## 2 False Negatives: 5.58 % bzw. 14 
## 3 False Positive: 23.9 % bzw. 60  
## 4 True Negatives: 44.22 % bzw. 111

Wie ist die Anzahl der toxischen Kommmentare dann also zu korrigieren?

  • Wie viele Positives/OFFENSE-Kommentare gibt es eigentlich?
    • True Positives + False Negatives = 80
  • Wie viele Kommentare stuft der Algorithmus als OFFENSE ein?
    • True Positives + False Positives ? 126
  • Um wie viel Prozent ist die erkannte Gesamtzahl also zu hoch?
    • 1 - (True Positives + False Negatives)/(True Positives + False Positives) * 100 = 36.5079365 %

3.2.2.1 Bootstrappen des Korrekturfaktors

Um eine Bandbreite von Werten für die Schätzung zu erhalten, können wir anstelle eines Korrekturfaktors eine Korrekturbandbreite berechnen.

3.2.3 Resultate

In diesem Teil werden die Kommentare auf ihren Anteil “Offense” über Zeit geprüft.

Alle beleidigenden Kommentare:

Wie viele Likes oder Dislikes erhalten toxische Kommentare?

## # A tibble: 2 x 3
##   label   anzahl mean_like_count
##   <chr>    <int>           <dbl>
## 1 OFFENSE  13536            8.53
## 2 OTHER    51257            7.06

Berechnen des Anteils “Offense” aller Kommentare nach Video

Summe der toxischen Kommentare (korrigiert):

## # A tibble: 1 x 1
##   sum_toxic
##       <dbl>
## 1     8594.

Deshalb runterkorrigieren:

  • Algorithmus erkennt
Anzahl als beleidigend erkannter Kommentare an allen Kommentaren pro Video, Dichte

Figure 3.3: Anzahl als beleidigend erkannter Kommentare an allen Kommentaren pro Video, Dichte

Anteil als beleidigend erkannter Kommentare an allen Kommentaren pro Video, Dichte

Figure 3.4: Anteil als beleidigend erkannter Kommentare an allen Kommentaren pro Video, Dichte

Erkannter Anteil “Offense” über Zeit, Version 1

Kommentare, die das Modell als Offense einstuft. Anteil über Zeit

Figure 3.5: Kommentare, die das Modell als Offense einstuft. Anteil über Zeit

  • leichter Aufwärtstrend

Version 2:

Kommentare, die das Modell als Offense einstuft. Anteil über Zeit V2

Figure 3.6: Kommentare, die das Modell als Offense einstuft. Anteil über Zeit V2

3.2.4 Anteil toxischer Kommentare über Zeit

Kommentare, die das Modell als Offense einstuft. Anteil über Zeit V2

Figure 3.7: Kommentare, die das Modell als Offense einstuft. Anteil über Zeit V2

Kommentare, die das Modell als Offense einstuft. Anteil über Zeit

Figure 3.8: Kommentare, die das Modell als Offense einstuft. Anteil über Zeit

Erkannte Anzahl “Offense”-Kommentare über Zeit, rollender Halbmonatsdurchschnitt

Kommentare, die das Modell als Offense einstuft. Absolut, über Zeit

Figure 3.9: Kommentare, die das Modell als Offense einstuft. Absolut, über Zeit

  • Aufwärtstrend

## # A tibble: 1 x 1
##   mean_prop_offense
##               <dbl>
## 1              5.96

20 Episoden mit höchstem Anteil “Offense”-Kommentaren:

Episode mit grösster Anzahl “Offense”-Kommentaren:

Welche Kommentare wurden da alle als “Offense” gelabelt?

3.2.5 Wer schreibt beleidigende Kommentare?

  • Achtung: hier von jenen, die toxische Kommentare geschrieben haben!
  • 95% schreiben 8 oder weniger Kommentare, 5% schrieben zwischen 8 und 264 toxische Kommentare
  • Mehr als die Hälfte der Kommentierenden schrieben nie einen toxischen Kommentar, 35% schrieben einen oder mehr

Gibt es Nutzer, die für das Gros der toxischen Kommentare verantwortlich sind?

## # A tibble: 6,727 x 5
##    snippet_author_channel_id_value label       n anteil_prozent cumsum_anteil
##    <chr>                           <chr>   <dbl>          <dbl>         <dbl>
##  1 UCFqdEJG4tymiTnyXfT0QG2Q        OFFENSE   264          1.95           1.95
##  2 UCECuo4fP6osGN_72yyY9SaQ        OFFENSE   191          1.41           3.36
##  3 UCleF4tBHWCVZh5Mt0oaeJvg        OFFENSE   122          0.901          4.26
##  4 UCRlhF4KVSWaiS6Yt6tUcrLA        OFFENSE   119          0.879          5.14
##  5 UC7G4mrTO5arRHt-W_1JyCFg        OFFENSE   115          0.850          5.99
##  6 UCGd9CrVl8XiEASb8DlmHEaw        OFFENSE   111          0.820          6.81
##  7 UCrBroGe9YLWdE_r8SOQOnXQ        OFFENSE   109          0.805          7.62
##  8 UCAUQe3ojC6aMSkuAk2eqiRg        OFFENSE   108          0.798          8.41
##  9 UCgtstuVQKg1sF_NKpUQxEvA        OFFENSE   101          0.746          9.16
## 10 UCzjtNXedlULPqmKupUdEj6Q        OFFENSE    98          0.724          9.88
## # … with 6,717 more rows
  • einige haben eher hohe Werte,

Welcher Anteil der Kommentierenden hat laut Modell schon mindestens einen toxischen Kommentar verfasst?

## # A tibble: 2 x 3
##   `n > 3`     n `n/sum(n, na.rm = TRUE)`
##   <lgl>   <int>                    <dbl>
## 1 FALSE    1974                    0.736
## 2 TRUE      709                    0.264

Knapp 35% der Kommentierenden haben gemäss Modell mindestens zwei toxische Kommentare verfasst; bei knapp der Hälfte der Kommentierenden erkennt der Algorithmus mindestens einen toxischen Kommentar.

–> bizli willkürlich, hier mit Dezilen:

  • viele schreiben nur einen Kommentar

Schreiben Kommentierende ausschliesslich Beleidigendes oder haben sind die Kommentare ausgeglichen?

Verteilung des Anteils beleidigender Kommentare an Gesamtzahl Kommentare, Quadratwurzeltransformierte Y-Achse

Figure 3.10: Verteilung des Anteils beleidigender Kommentare an Gesamtzahl Kommentare, Quadratwurzeltransformierte Y-Achse

Verteilung des Anteil Kommentare, Quantile, Quadratwurzeltransformierte Y-Achse

Figure 3.11: Verteilung des Anteil Kommentare, Quantile, Quadratwurzeltransformierte Y-Achse

3.3 Topic Models der Kommentare

Welche Topic Models sind geeignet?

Das kann anhand Exclusivity, Semantic Coherence, Held-out Likelihood und Residuals bewertet werden (analog zu Julia Silge’s Blog Post).

3.3.1 Wortwahrscheinlichkeiten nach K

3.3.1.1 K = 10

## [[1]]
Topic Model mit K = 10 mit Wortwahrscheinlichkeiten nach Topic

Figure 3.12: Topic Model mit K = 10 mit Wortwahrscheinlichkeiten nach Topic

3.3.1.2 K = 15

## [[1]]
Topic Model mit K = 15 mit Wortwahrscheinlichkeiten nach Topic

Figure 3.13: Topic Model mit K = 15 mit Wortwahrscheinlichkeiten nach Topic

3.3.1.3 K = 20

## [[1]]
Topic Model mit K = 20 mit Wortwahrscheinlichkeiten nach Topic

Figure 3.14: Topic Model mit K = 20 mit Wortwahrscheinlichkeiten nach Topic

3.3.1.4 K = 30

## [[1]]
Topic Model mit K = 30 mit Wortwahrscheinlichkeiten nach Topic

Figure 3.15: Topic Model mit K = 30 mit Wortwahrscheinlichkeiten nach Topic

4 Untertitel

4.1 Inhalte

## # A tibble: 1 x 1
##       n
##   <int>
## 1   115
## # A tibble: 52 x 3
##    vid         wort               n
##    <chr>       <chr>          <int>
##  1 x21sybhf_Yk rahmenabkommen    22
##  2 jz54u0Yr_A4 rahmenabkommen    12
##  3 nWoCwyRLNOQ rahmenabkommen    10
##  4 _jK_Q1Z7xwA rahmenabkommen     9
##  5 4OML1qwQsa4 rahmenabkommen     9
##  6 BdvXqAqVLdI rahmenabkommen     9
##  7 _195aaaA920 rahmenabkommen     8
##  8 ---g2Ov2Yno rahmenabkommen     8
##  9 D__wHC_0vo8 rahmenabkommen     7
## 10 fpiyml7Ubok rahmenabkommen     7
## # … with 42 more rows
## # A tibble: 12 x 3
##    vid         wort      n
##    <chr>       <chr> <int>
##  1 jslrNbzr02A bibel    13
##  2 nVQx_oSn334 bibel     4
##  3 4OML1qwQsa4 bibel     2
##  4 8ciOOLFs38s bibel     2
##  5 ps78RN3vMXg bibel     2
##  6 E6X1yAHj5LQ bibel     1
##  7 n-pusQ602H4 bibel     1
##  8 NKPWxjnEiro bibel     1
##  9 Oidz5OwfB6c bibel     1
## 10 otGWZKH6MXA bibel     1
## 11 Q3KeXNoxJR4 bibel     1
## 12 x5eCgZmQZL8 bibel     1

4.2 Topic Models der Untertitel

Welche Topic Models sind geeignet?

Das kann anhand Exclusivity, Semantic Coherence, Held-out Likelihood und Residuals bewertet werden (analog zu Julia Silge’s Blog Post).

4.2.1 Wortwahrscheinlichkeiten nach K

4.2.1.1 K = 10

## [[1]]
Topic Model mit K = 10 mit Wortwahrscheinlichkeiten nach Topic

Figure 4.1: Topic Model mit K = 10 mit Wortwahrscheinlichkeiten nach Topic

4.2.1.2 K = 15

## [[1]]
Topic Model mit K = 15 mit Wortwahrscheinlichkeiten nach Topic

Figure 4.2: Topic Model mit K = 15 mit Wortwahrscheinlichkeiten nach Topic

4.2.1.3 K = 20

## [[1]]
Topic Model mit K = 20 mit Wortwahrscheinlichkeiten nach Topic

Figure 4.3: Topic Model mit K = 20 mit Wortwahrscheinlichkeiten nach Topic

4.2.1.4 K = 30

## [[1]]
Topic Model mit K = 30 mit Wortwahrscheinlichkeiten nach Topic

Figure 4.4: Topic Model mit K = 30 mit Wortwahrscheinlichkeiten nach Topic

5 Korreliert das Auftreten gewisser Themen mit dem Auftreten beleidigender Kommentare?

5.1 Lineare Regressionen

Lineares Modell wohl geeignet um die Anzahl beleidigender da prop_offense normalverteilt.

Wie ist der Anteil beleidigender Kommentare zu den Videos verteilt?

Tabelle aller Regressionen mit P-Werten und Efekten nach K-Topics

Nur Topics, die auf 0.001 signifikant und mit positiven Effekt:

Das Topic Model mit K = 30 weist nicht nur gute Werte bei den Metrics auf, sondern in ihm korrelieren verschiedenste Topics signifikant mit dem Auftreten von beleidigenden Kommentaren.

Probieren, die Topics in den Untertiteln in über Zeit zu plotten:

Inhalte der Sendung, vereinfacht:

## [[1]]

Inhalte der Sendung, granularer, K = 25

## [[1]]

Alle Topics, aber prädiktive eingefärbt bei K = 25:

5.1.1 Themen nach Wichtigkeit geordnet

## # A tibble: 25 x 3
##    terms_and_topic                                               topic sum_gamma
##    <chr>                                                         <int>     <dbl>
##  1 trump, donald, letzt, medien, amerikanisch, usa, präsidenten…     3     1173.
##  2 tot, wirtschaft, zahlen, corona, sterben, fragen, virus, bun…    12      971.
##  3 eu, europäisch, union, bundesrat, schweizer, rahmenabkommen,…     6      896.
##  4 virus, prozent, bundesrat, corona, bleiben, fragen, stark, m…    23      862.
##  5 bundesrat, partei, deutschland, medien, fragen, nehmen, gesc…     9      853.
##  6 medien, bekommen, fragen, sehen, lassen, politiker, schließe…    22      851.
##  7 fdp, svp, link, bundesrat, medien, demokratie, freiheit, deu…    17      842.
##  8 usa, rassismus, staaten, nationalbank, schwarz, finden, them…     4      835.
##  9 bundesrat, staat, fragen, stellen, situation, kritisch, maßn…    11      803.
## 10 bundesrat, medien, kritisieren, schreiben, sendung, diktatur…    24      788.
## # … with 15 more rows

5.1.1.1 Themen

Episoden, in denen die prädiktiven Topics präsent waren (Anteil > 1%):

5.1.1.2 Folgen mit Diktaturvergleich-Topic

## # A tibble: 18 x 55
##    topic date       content_details_… perc_offense     n gamma terms_and_topic  
##    <int> <date>     <chr>                    <dbl> <int> <dbl> <chr>            
##  1    24 2021-02-26 zKTRYrPGboc              17.7      1 98.2  bundesrat, medie…
##  2    24 2021-02-25 BfNyRS4WamI              16.9      1  3.86 bundesrat, medie…
##  3    24 2021-02-22 _jK_Q1Z7xwA              14.0      1 60.2  bundesrat, medie…
##  4    24 2021-01-14 3ayiKMtyUog              13.7      1 89.1  bundesrat, medie…
##  5    24 2021-02-24 drPey0nK_ME              13.6      1 98.9  bundesrat, medie…
##  6    24 2021-03-11 sI430Ht5WcY              11.1      1  1.05 bundesrat, medie…
##  7    24 2021-03-22 Hop_MfkXl7c              10.5      1 98.5  bundesrat, medie…
##  8    24 2021-01-15 fWrzd1aGoEQ              10.4      1 25.0  bundesrat, medie…
##  9    24 2021-03-02 iny5ouOhWdw               9.23     1 98.8  bundesrat, medie…
## 10    24 2021-03-03 Oidz5OwfB6c               8.70     1 36.2  bundesrat, medie…
## 11    24 2021-01-25 eF0ZXkGIAvQ               8.49     1 20.7  bundesrat, medie…
## 12    24 2020-05-12 F-UafsQ5yfU               7.00     1  1.53 bundesrat, medie…
## 13    24 2020-05-18 zOJYR2BvKKM               5.73     1 95.2  bundesrat, medie…
## 14    24 2021-02-09 joDK-Vaet_E               5.73     1 12.7  bundesrat, medie…
## 15    24 2021-02-03 nJse9odtmJI               3.61     1 25.7  bundesrat, medie…
## 16    24 2020-04-16 wO_WznM4y9Y               3.08     1  2.24 bundesrat, medie…
## 17    24 2020-03-05 shA-MbRCLMw               3.08     1  1.28 bundesrat, medie…
## 18    24 2020-05-27 XJrO8a2G4pg               1.17     1  4.15 bundesrat, medie…
## # … with 48 more variables: kind <chr>, etag <chr>,
## #   content_details_video_published_at <dttm>, response_kind <chr>,
## #   response_etag <chr>, items_kind <chr>, items_etag <chr>, id <chr>,
## #   published_at <dttm>, channel_id <chr>, title <chr>, description <chr>,
## #   thumbnails_default_url <chr>, thumbnails_default_width <int>,
## #   thumbnails_default_height <int>, thumbnails_medium_url <chr>,
## #   thumbnails_medium_width <int>, thumbnails_medium_height <int>,
## #   thumbnails_high_url <chr>, thumbnails_high_width <int>,
## #   thumbnails_high_height <int>, thumbnails_standard_url <chr>,
## #   thumbnails_standard_width <int>, thumbnails_standard_height <int>,
## #   thumbnails_maxres_url <chr>, thumbnails_maxres_width <int>,
## #   thumbnails_maxres_height <int>, channel_title <chr>, category_id <int>,
## #   live_broadcast_content <chr>, localized_title <chr>,
## #   localized_description <chr>, status_upload_status <chr>,
## #   status_privacy_status <chr>, status_license <chr>, status_embeddable <lgl>,
## #   status_public_stats_viewable <lgl>, status_made_for_kids <lgl>,
## #   statistics_view_count <int>, statistics_like_count <int>,
## #   statistics_dislike_count <int>, statistics_favorite_count <int>,
## #   statistics_comment_count <int>, page_info_total_results <int>,
## #   page_info_results_per_page <int>, default_audio_language <chr>,
## #   default_language <lgl>, label <chr>

Visualisierung davon:

## # A tibble: 11 x 55
##    link_zur_stelle       segment_id start duration vid     kind      etag       
##    <chr>                      <int> <dbl>    <dbl> <chr>   <chr>     <chr>      
##  1 https://youtu.be/zKT…        189  514.     4.38 zKTRYr… youtube#… riHtY9gcSB…
##  2 https://youtu.be/zKT…        201  542.     3.78 zKTRYr… youtube#… riHtY9gcSB…
##  3 https://youtu.be/zKT…        203  546.     5.94 zKTRYr… youtube#… riHtY9gcSB…
##  4 https://youtu.be/zKT…        216  578.     4.03 zKTRYr… youtube#… riHtY9gcSB…
##  5 https://youtu.be/zKT…        220  585.     5.85 zKTRYr… youtube#… riHtY9gcSB…
##  6 https://youtu.be/zKT…        222  591.     8.1  zKTRYr… youtube#… riHtY9gcSB…
##  7 https://youtu.be/zKT…        224  599.     4.64 zKTRYr… youtube#… riHtY9gcSB…
##  8 https://youtu.be/zKT…        227  607.     8.34 zKTRYr… youtube#… riHtY9gcSB…
##  9 https://youtu.be/zKT…        237  635.     6.69 zKTRYr… youtube#… riHtY9gcSB…
## 10 https://youtu.be/zKT…        240  643.     4.71 zKTRYr… youtube#… riHtY9gcSB…
## 11 https://youtu.be/zKT…        346  935.     5.16 zKTRYr… youtube#… riHtY9gcSB…
## # … with 48 more variables: content_details_video_published_at <dttm>,
## #   response_kind <chr>, response_etag <chr>, items_kind <chr>,
## #   items_etag <chr>, id <chr>, published_at <dttm>, channel_id <chr>,
## #   title <chr>, description <chr>, thumbnails_default_url <chr>,
## #   thumbnails_default_width <int>, thumbnails_default_height <int>,
## #   thumbnails_medium_url <chr>, thumbnails_medium_width <int>,
## #   thumbnails_medium_height <int>, thumbnails_high_url <chr>,
## #   thumbnails_high_width <int>, thumbnails_high_height <int>,
## #   thumbnails_standard_url <chr>, thumbnails_standard_width <int>,
## #   thumbnails_standard_height <int>, thumbnails_maxres_url <chr>,
## #   thumbnails_maxres_width <int>, thumbnails_maxres_height <int>,
## #   channel_title <chr>, category_id <int>, live_broadcast_content <chr>,
## #   localized_title <chr>, localized_description <chr>,
## #   status_upload_status <chr>, status_privacy_status <chr>,
## #   status_license <chr>, status_embeddable <lgl>,
## #   status_public_stats_viewable <lgl>, status_made_for_kids <lgl>,
## #   statistics_view_count <int>, statistics_like_count <int>,
## #   statistics_dislike_count <int>, statistics_favorite_count <int>,
## #   statistics_comment_count <int>, page_info_total_results <int>,
## #   page_info_results_per_page <int>, default_audio_language <chr>,
## #   default_language <lgl>, date <date>, wort <chr>, term_list <chr>

5.1.2 Themen der Beiträge mit den toxischsten Kommentare

Themen nach Auftreten:
Topic Expected topic proportion Top 7 terms
Topic 5 0.115 , corona, test, positiv, masken, pcr, virus, tests
Topic 11 0.102 , danke, bundesrat, politiker, schweiz, berset, genau, leben
Topic 3 0.099 trump, , biden, usa, medien, präsident, sehen, wahl
Topic 12 0.097 , gates, bundesrat, schweiz, bill, schweizer, corona, volk
Topic 9 0.086 , eu, schweiz, schweizer, svp, co2, sehen, klima
Topic 15 0.084 , corona, link, grün, leben, sterben, einfach, fragen
Topic 10 0.072 , corona, virus, schweiz, china, danke, tot, sehen
Topic 2 0.068 , corona, the, virus, of, covid, tot, and
Topic 14 0.066 impfung, , impfen, impfstoff, lassen, impfungen, schweiz, covid
Topic 4 0.064 , merkel, deutschland, frau, deutsch, afd, schweiz, demokratie
Topic 6 0.049 , polizei, berlin, corona, demo, medien, sehen, weltwoche
Topic 8 0.041 , frauen, putin, russland, frau, schweiz, kinder, leben
Topic 7 0.020 argumente, svp, schweiz, deutsch, sprechen, gut, grün, lassen
Topic 13 0.019 , deutsch, reichen, nazis, liste, corona, lassen, völker
Topic 1 0.018 schulen, usa, schwarz, demokratie, lassen, gut, eher, kinder

Welche Worte sind den wahrscheinlichsten Themen gemeinsam:

## # A tibble: 20 x 2
##    term_list         n
##    <chr>         <int>
##  1 ""                5
##  2 "schweiz"         5
##  3 "berset"          3
##  4 "bundesrat"       3
##  5 "danke"           3
##  6 "genau"           3
##  7 "leben"           3
##  8 "politiker"       3
##  9 "afd"             1
## 10 "covid"           1
## 11 "demokratie"      1
## 12 "deutsch"         1
## 13 "deutschland"     1
## 14 "frau"            1
## 15 "impfen"          1
## 16 "impfstoff"       1
## 17 "impfung"         1
## 18 "impfungen"       1
## 19 "lassen"          1
## 20 "merkel"          1
  • Kritik am
    • Bundesrat
    • Demokratie
    • ‘fragen’
  • SVP?

Wie oft kommen die Worte in den entsprechenden Episoden vor?

## # A tibble: 54 x 3
##    term_list  content_details_video_id     n
##    <chr>      <chr>                    <int>
##  1 schweiz    EPnXH3Q8SdE                 21
##  2 schweiz    2vPOxk7MQTc                 19
##  3 schweiz    BfNyRS4WamI                 18
##  4 schweiz    xgRve2Zh2RM                 17
##  5 bundesrat  zKTRYrPGboc                 14
##  6 demokratie zKTRYrPGboc                  8
##  7 lassen     2vPOxk7MQTc                  8
##  8 lassen     EPnXH3Q8SdE                  8
##  9 frau       EPnXH3Q8SdE                  7
## 10 lassen     xgRve2Zh2RM                  7
## # … with 44 more rows
## # A tibble: 20 x 2
##    term_list         n
##    <chr>         <int>
##  1 ""                1
##  2 "afd"             1
##  3 "berset"          1
##  4 "bundesrat"       1
##  5 "covid"           1
##  6 "danke"           1
##  7 "demokratie"      1
##  8 "deutsch"         1
##  9 "deutschland"     1
## 10 "frau"            1
## 11 "genau"           1
## 12 "impfen"          1
## 13 "impfstoff"       1
## 14 "impfung"         1
## 15 "impfungen"       1
## 16 "lassen"          1
## 17 "leben"           1
## 18 "merkel"          1
## 19 "politiker"       1
## 20 "schweiz"         1

Häufigste Worte in Untertiteln zu 10 toxischsten Episoden, gewichtet nach TF-IDF:

Häufigste Worte in toxischen Kommentaren der 10 toxischsten Kommentarspalten, gewichtet nach TF-IDF:

Worte in den Untertiteln vs. den toxischen Kommentaren

https://ggplot2-book.org/facet.html

### Bigrams

5.1.2.1 20 meist vorkommende Bigrams innerhalb der toxischen Kommentare

## # A tibble: 13 x 20
##    video_id  id       snippet_video_id snippet_text_display snippet_text_origin…
##    <chr>     <chr>    <chr>            <chr>                <chr>               
##  1 NKPWxjnE… UgwhJSb… NKPWxjnEiro      "Was ist Rassismus?… "Was ist Rassismus?…
##  2 NKPWxjnE… Ugycl5a… NKPWxjnEiro      "Warum genau soll &… "Warum genau soll \…
##  3 NKPWxjnE… UgwpGzM… NKPWxjnEiro      "Bananenpflücker is… "Bananenpflücker is…
##  4 NtYT-HAI… UgzRRGv… NtYT-HAI2xc      "Wer einen Nicht Sc… "Wer einen Nicht Sc…
##  5 NtYT-HAI… UgxcLsR… NtYT-HAI2xc      "Nichts gegen Banan… "Nichts gegen Banan…
##  6 NtYT-HAI… UgxBzXu… NtYT-HAI2xc      "Rassistisch sind G… "Rassistisch sind G…
##  7 NtYT-HAI… Ugy4zyZ… NtYT-HAI2xc      "Was ist an einem B… "Was ist an einem B…
##  8 NtYT-HAI… Ugw97fi… NtYT-HAI2xc      "Was bitte soll dar… "Was bitte soll dar…
##  9 NtYT-HAI… Ugw97fi… NtYT-HAI2xc      "Bananenpflücker si… "Bananenpflücker si…
## 10 NtYT-HAI… Ugxg2n8… NtYT-HAI2xc      "<a href=\"\"\"\"ht… "4:30 Er/sie/es muß…
## 11 NtYT-HAI… Ugy_ndV… NtYT-HAI2xc      "Ich habe in meinem… "Ich habe in meinem…
## 12 NtYT-HAI… UgzI2Xh… NtYT-HAI2xc      "Bananenpflücker is… "Bananenpflücker is…
## 13 Z_fLkwGO… UgxqV9a… Z_fLkwGOhjE      "Uh beinahe wäre mi… "Uh beinahe wäre mi…
## # … with 15 more variables: snippet_author_display_name <chr>,
## #   snippet_author_profile_image_url <chr>, snippet_author_channel_url <chr>,
## #   snippet_author_channel_id_value <chr>, snippet_can_rate <lgl>,
## #   snippet_viewer_rating <chr>, snippet_like_count <int>,
## #   snippet_published_at <dttm>, snippet_updated_at <dttm>, can_reply <lgl>,
## #   total_reply_count <int>, is_public <lgl>, is_reply <lgl>,
## #   snippet_parent_id <chr>, snippet_moderation_status <chr>

## [[1]]

6 GIF

Vorschau-GIFs herunterladen